Unit test
Unit test, også kaldet modultest, er en testmetode i computerprogrammering, der verificerer, at individuelle enheder i kildekoden virker efter hensigten. En unit (enhed) er den mindste testbare størrelse i en applikation. I procedural programmering kan den mindste enhed være et individuelt program, en funktion eller en procedure. I objektorienteret programmering er den mindste enhed en metode, der hører til i en klasse.
Ideelt er alle unit tests uafhængige af hinanden og kan afvikles selvstændigt. Stubbe, Mock/falske[1] objekter og en test harness kan benyttes til at teste moduler i et isoleret miljø. Unit test benyttes på en af to måder, enten benyttes de til at styre udviklingen af kildekode, eller som validering af udviklet kode. At benytte unit tests som drivkraft i udvikling er en af hjørnestenene i udviklingsmetoden Extreme Programming (XP). Skal man skrive kode der passer til specifikationerne angivet i form af unit tests eller skrive test der verificerer at koden opfylder specifikationerne.[2]
Fordele
[redigér | rediger kildetekst]Formålet med en unit test er at isolere hver del af et program og vise, at de individuelle dele fungerer korrekt. En unit test er en konsekvent, nedskrevet kontrakt, som en kodeenhed skal opfylde. Ved tidsmæssigt at placere unit test tæt på kodeudvikling, opdages fejl tidligt i udviklingsprocessen.[3]
Unit tests tillader, at en programmør kan foretage ændringer til koden på et senere tidspunkt ved at sikre, at modulet stadig virker korrekt. En forudsætning for dette er, at et sæt unit test er fyldestgørende. Et testsæt er fyldestgørende, når alle tilstande i en funktion eller metode bliver aktiveret. Tilstande kan eksempelvis være betingelser i en if eller case erklæring.[4] For at sikre, at denne forudsætning er opfyldt, udføres en "Code Coverage" analyse som test af testene.[5]
Referencer
[redigér | rediger kildetekst]- ^ Fowler, Martin (2. januar 2007). "Mocks aren't Stubs". Hentet 1. april 2008.
- ^ Beck, Kent (august 2006). Extreme programming explained. s. 101. ISBN 0321278658.
You can write code to fit a mold or a mold to fit code
- ^ Beck, Kent (august 2006). Extreme programming explained. s. 101. ISBN 0321278658.
Defect Cost Increase(DCI) tells us to put testing near code
- ^ Martin, Robert C. (juli 2008). Clean Code. s. 313. ISBN 0-13-235088-2.
The tests are insufficient so long as there are conditions that have not been explored by the test or calcuations that have not been validated
- ^ Bergmann, Sebastian (25. november 2008). "Code Coverage Analysis gives you an insight into what parts of the production code are executed when the tests are run". Arkiveret fra originalen 17. december 2008. Hentet 25. november 2008.